#pragma once

#include "FrameWindow.h"


namespace Zaf {
namespace Mwl {



class Form : public FrameWindow {

public:
	Form();
	virtual ~Form();

	bool HasTitleBar() const;
	void HasTitleBar(bool value);

	bool IsToolWindow() const;
	void IsToolWindow(bool value);

	bool IsSizable() const;
	void IsSizable(bool value);

	bool HasSystemMenu() const;
	void HasSystemMenu(bool value);

	bool HasMinimizeBox() const;
	void HasMinimizeBox(bool value);

	bool HasMaximizeBox() const;
	void HasMaximizeBox(bool value);

protected:

private:
	HWND CreateConcreteWindow();
};



inline Form::Form() {

}



inline Form::~Form() {

}



inline bool Form::IsToolWindow() const {
	return HasExStyle(WS_EX_TOOLWINDOW);
}


inline void Form::IsToolWindow(bool value) {
	ChangeExStyle(WS_EX_TOOLWINDOW, value);
}



inline bool Form::IsSizable() const {
	return HasStyle(WS_SIZEBOX);
}
inline void Form::IsSizable(bool value) {
	ChangeStyle(WS_SIZEBOX, value);
}



inline bool Form::HasSystemMenu() const {
	return HasStyle(WS_SYSMENU);
}
inline void Form::HasSystemMenu(bool value) {
	ChangeStyle(WS_SYSMENU, value);
}



inline bool Form::HasMinimizeBox() const {
	return HasStyle(WS_MINIMIZEBOX);
}
inline void Form::HasMinimizeBox(bool value) {
	ChangeStyle(WS_MINIMIZEBOX, value);
}



inline bool Form::HasMaximizeBox() const {
	return HasStyle(WS_MAXIMIZEBOX);
}
inline void Form::HasMaximizeBox(bool value) {
	ChangeStyle(WS_MAXIMIZEBOX, value);
}


}
}

